package c97Coder;//package c97Coder;
//
//import javax.crypto.Cipher;
//import javax.crypto.KeyGenerator;
//import javax.crypto.spec.SecretKeySpec;
//
//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;
//
///**
//* AES加密解密工具。
//* <br><br>
//* 创建人：袁炜林 <br>
//* 创建时间：2017年9月22日 下午3:09:14 <br>
//* 修改人： <br>
//* 修改时间： <br>
//* 修改备注： <br>
//*
//* @version V1.0
//*/
//public class AESCoder {
//	private static Logger logger = LoggerFactory.getLogger(AESCoder.class);
//
//	/**
//	 * AES密钥。长度为16的字符串。
//	 */
//	private static final String AES_KEY = "/.,~!@#$%^&*()_+";
//
//	/**
//	 * 使用ECB模式。对应前端js的CryptoJS.pad.Pkcs7。
//	 */
//	private static final String AES_ALGORITHMSTR = "AES/ECB/PKCS5Padding";
//
//	private static byte[] aesEncryptToBytes(String content, String encryptKey) throws Exception {
//		KeyGenerator kgen = KeyGenerator.getInstance("AES");
//		kgen.init(128);
//		Cipher cipher = Cipher.getInstance(AES_ALGORITHMSTR);
//		cipher.init(Cipher.ENCRYPT_MODE, new SecretKeySpec(encryptKey.getBytes(), "AES"));
//
//		return cipher.doFinal(content.getBytes("utf-8"));
//	}
//
//	/**
//	 * AES加密。
//	 * <br><br>
//	 * 创建人： 袁炜林 <br>
//	 * 创建时间：  2017年9月22日 下午3:06:02 <br>
//	 *
//	 * @param content 明文
//	 * @param encryptKey 密钥
//	 * @return
//	 * @throws Exception
//	 */
//	public static String aesEncrypt(String content, String encryptKey) throws Exception {
//		//加密成字节数组后，再用Base64编码一次
//		return BaseCoder.encryptBase64(aesEncryptToBytes(content, encryptKey));
//	}
//
//	private static String aesDecryptByBytes(byte[] encryptBytes, String decryptKey) throws Exception {
//		KeyGenerator kgen = KeyGenerator.getInstance("AES");
//		kgen.init(128);
//
//		Cipher cipher = Cipher.getInstance(AES_ALGORITHMSTR);
//		cipher.init(Cipher.DECRYPT_MODE, new SecretKeySpec(decryptKey.getBytes(), "AES"));
//		byte[] decryptBytes = cipher.doFinal(encryptBytes);
//
//		return new String(decryptBytes);
//	}
//
//	/**
//	 * AES解密。
//	 * <br><br>
//	 * 创建人： 袁炜林 <br>
//	 * 创建时间：  2017年9月22日 下午3:05:35 <br>
//	 *
//	 * @param encryptStr 密文
//	 * @param decryptKey 密钥
//	 * @return
//	 * @throws Exception
//	 */
//	public static String aesDecrypt(String encryptStr, String decryptKey) throws Exception {
//		//先用Base64解码密文再解密
//		return aesDecryptByBytes(BaseCoder.decryptBase64(encryptStr), decryptKey);
//	}
//
//	/**
//	 * 测试
//	 *
//	 */
//	public static void main(String[] args) throws Exception {
//
//		String content = "Test String么么哒"; //0gqIDaFNAAmwvv3tKsFOFf9P9m/6MWlmtB8SspgxqpWKYnELb/lXkyXm7P4sMf3e
//		logger.info("加密前：" + content);
//
//		logger.info("加密密钥和解密密钥：" + AES_KEY);
//
//		String encrypt = aesEncrypt(content, AES_KEY);
//		logger.info(encrypt.length() + ":加密后：" + encrypt);
//
//		String decrypt = aesDecrypt(encrypt, AES_KEY);
//		logger.info("解密后：" + decrypt);
//	}
//}